This invention relates generally to standard request-response protocols such as the HyperText Transport Protocol (HTTP), and more specifically to properties and name spaces of such protocols.
The HyperText Transport Protocol (HTTP) has emerged as the standard mechanism by which information is transported over TCP/IP (Transmission Control Protocol/Internet Protocol) compatible networks, such as the Internet, intranets, and extranets. HTTP is more specifically an application-level protocol for distributed, collaborative, hypermedia information systems. It is a generic, stateless, protocol that can be used for many tasks beyond its use for hypertext, such as name servers and distributed object management systems, through extension of its request methods, error codes and headers. It is referred to as a transport protocol, since information is transported according to its specifications, and is also referred to as a request-response protocol, since information is exchanged by a client making a request of a server, which generates a response thereto. HTTP as referred to herein refers generally to any standard of HTTP, and specifically to HTTP/1.1, as described in the HTTP Working Group Internet Draft dated Nov. 18, 1998, prepared by Fielding, et al., and available on the web site //www.w3.org.
A common use of HTTP is the transport of information formatted according to a markup language. For example, a popular application of the Internet is the browsing of world-wide-web pages thereof. In such instances, typically the information retrieved is in HyperText Markup Language (HTML) format, as transported according to HTTP. However, other standard markup languages are emerging. One such markup language is eXtensible Markup Language (XML). XML describes a class of data objects that are referred to as XML documents, and partially describes the behavior of computer programs that process them. A primary difference between HTML and XML is that within the former, information content is intertwined with the layout of the content, making their separation difficult, for example. Conversely, within XML a description of the storage layout and logical structure of content is maintained separate from the content itself. However, both XML and HTML are subsets of a markup language known as Standard Generalized Markup Language (SGML). XML as referred to herein refers generally to any standard of XML, and specifically to XML 1.0, as described in the W3C recommendation REC-xml-19980210 dated Feb. 10, 1998, and also available on the web site //www.w3.org.
HTTP, and hence XML in the context of HTTP, allows for the access of resources. The term resource refers to any piece of information that has a location described by a Uniform Resource Locator (URL) of the form HTTP:// less than domain greater than .  less than extension greater than , where  less than domain greater than  specifies a particular domain, and  less than extension greater than  can be, for example, .com, .edu, and net, among others. A resource can be, for example, a Web page, a hierarchical collection of information such as folders, a document, a database, a bitmap image, or a computational object. Recently, extensions to HTTP have been proposed that, among other things, allow for better access to resources over HTTP. The extensions are generally referred to as the World-Wide-Web Distributed Authoring and Versioning (WebDAV) extensions to HTTP. The goal of WebDAV, broadly speaking, has been to add remote authoring capabilities to HTTP, so that HTTP can be more convenient as a readable and writable collaborative medium, and not necessarily only a browsing medium for web pages.
WebDAV is generally described in the reference E. James Whitehead, Jr., World-Wide-Web Distributed Authoring and Versioning (WebDAV): An Introduction, in StandardView, Vol. 5, No. 1, March 1997, pages 3-8. WEBDav is also described in the reference Internet Engineering Task Force (IETF) Request for Comment (RFC) 2518, entitled HTTP Extensions for Distributed Authoring, by Y. Goland, E. Whitehead, A. Faizi, S. Carter and D. Jensen, and dated February 1999. Generally, this latter reference specifies a set of methods, headers and content-types ancillary to HTTP/1.1 for the management of resource properties, creation and management of resource collections, name space manipulation, and resource locking (also referred to as collision avoidance).
The WebDAV extensions to HTTP specify that properties and name spaces be described according to a separate naming scheme wherein property names may not be unique, but are combined with a namespace in order to ensure uniqueness. A namespace may have a long name, thus may be abbreviated as in the format:  less than ns:property greater than , where ns: is the namespace abbreviation and property is the property name. A namespace abbreviation is associated with a namespace, for an XML document, the first time the abbreviation is used, as in the format  less than ns:property xmlns:ns=xe2x80x9clong_namespace_namexe2x80x9d greater than . Alternatively, as in the examples shown, a default namespace is defined for an XML document, as in the format  less than property xmlns=xe2x80x9clong_namespace_namexe2x80x9d greater than , and the namespace is implicit though not used throughout the XML. A property is specifically a name/value pair that contains descriptive information about a resource. More generally, a property is any information about a resource. Thus, properties provide for the ability to create, remove, and query such information about resources, such as their authors, creation dates, etc. Properties also provide for the ability to link web pages of any media type to other related web pages. A name space refers generally to the given space in which a resource is located. The scheme is a separated scheme because the property name is shown alone, whereas the full namespace name is shown separately.
The separated naming scheme of WebDAV, however, is not consistent with naming schemes used by other protocols and standards. For example, according to the Object Linking and Embedding Data Base (OLEDB) programming interface for data access, namespaces are not directly supported, so if the namespace is required to distinguish the property, it must be consistently appended to the beginning of the property name, as in the format xe2x80x9clong namespace_name#propertyxe2x80x9d, where property is the property name, and long_namespace_name: is the full namespace name, and # is an arbitrary separator character used to separate the two. OLEDB is specifically an object for use in the Component Object Model (COM) architecture to provide for data access of databases as well as other data sources. COM is a component software architecture that defines a structure for building program routines, referred to as objects, that can be called up and executed in operating system environments that support COM. OLEDB is described generally at the Internet web site //www.microsoft.com/data/oledb/ and at the Internet web site://www.microsoft.com/data/oledb/oledb20/. COM is described generally at the Internet web site //www.microsoft.com/com and at the Internet web site //www.microsoft.com/com/about.asp.
These different naming schemes are disadvantageous when both WebDAV and OLEDB are to be used to refer to the same data. OLEDB, for example, cannot process a property and a name space that is in accordance with the WebDAV naming scheme, while WebDAV cannot process a property and a name space that is in accordance with the OLEDB naming scheme. For these and other reasons, there is a need for the present invention.
The invention provides for translating property names and name space names between different naming schemes. In one embodiment, the concatenated format is considered the canonical format for describing a namespace/property pair. When a message is received that includes a separated namespace and property name, as in WebDAV, it is translated to the concatenated format for use. When a message is sent that must include a separated namespace and property name, the concatenated format is translated to the separated format. When a message is received that includes the concatenated namespace and property name, as in OLEDB, the concatenated format can be used directly.
The invention provides advantages not found in the prior art. In the context of OLEDB and WebDAV, the invention allows a OLEDB-centric application to access properties and name spaces specified in accordance with the separated naming scheme of WebDAV. Furthermore, the invention allows a WebDAV-centric application to access properties and name spaces specified in accordance with the concatenated naming scheme of OLEDB.